package cn.fscode.code.generator.service;

import cn.fscode.code.generator.manager.WordTableManager;
import cn.fscode.code.generator.model.req.GenTableInfoSaveReq;
import cn.fscode.code.generator.model.req.GenTablePageReq;
import cn.fscode.code.generator.model.req.ImportDbTableReq;
import cn.fscode.code.generator.model.req.ImportDocumentTableReq;
import cn.fscode.code.generator.model.resp.GenInfoResp;
import cn.fscode.code.generator.model.resp.GenTableResp;
import cn.fscode.code.generator.model.resp.ImportTableResp;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;
import java.util.Map;

/**
 * @author shenguangyang
 */
public interface IGenTableService {
    Map<String, String> previewCode(List<Long> tableIds);

    /**
     * 从excel中导入表数据
     */
    void importTableFromExcel();

    IPage<GenTableResp> pageGenTable(GenTablePageReq req);

    /**
     * 从word中导入表数据
     */
    List<ImportTableResp> importWordTable(ImportDocumentTableReq req, WordTableManager wordTableManager);

    /**
     * 导入数据库中的表
     */
    List<ImportTableResp> importDbTable(ImportDbTableReq req);

    void deleteGenTableByIds(List<Long> tableIds);

    GenTableResp getGenTableRespByTableId(Long tableId);

    void saveOrUpdateGenTableInfo(GenTableInfoSaveReq req);

    GenInfoResp getGenInfo(Long tableId);
}
